﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace XTYAPI.PLC
{
    class 三位五通电磁阀
    {
        enum 电磁阀状态机
        {
            中间位,
            在原位,
            在终位,
            故障中
        }
        电磁阀状态机 状态 = 电磁阀状态机.中间位;

        #region 输入属性
        public bool 输入_去原位 { get; set; }
        public bool 输入_去终位 { get; set; }
        public bool 输入_原位传感器 { get; set; }
        public bool 输入_终位传感器 { get; set; }
        public uint 输入_动作超时时间 { get; set; }
        #endregion
        #region 输出属性
        public bool 输出_去原位 { get; set; }
        public bool 输出_去终位 { get; set; }
        public bool 输出_报警发生 { get; set; }
        public string 输出_报警内容 { get; set; }
        #endregion
        TON 去原位定时器 = new TON();
        public (bool, string) FunControl()
        {
            switch (状态)
            {
                case 电磁阀状态机.中间位:

                    if (输入_去原位)
                    {
                        输出_去原位 = true;
                        去原位定时器.PT = 输入_动作超时时间 < 1000 ? 1000 : 输入_动作超时时间;
                        去原位定时器.IN = true;
                    }
                    
                    break;
                case 电磁阀状态机.在原位:
                    break;
                case 电磁阀状态机.在终位:
                    break;
                case 电磁阀状态机.故障中:
                    break;
                default:
                    break;
            }
            return (true,"OK");
        }
    }
}
